<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<jsp:include page="../comunes/header.jsp" />
<h2>Complementar Orden de Trabajo</h2>
<form:form method="POST" modelAttribute="ordenTrabajo" enctype="multipart/form-data">
   <table id="tbl_ot_head" class="tbl_formulario">
      <tr>
         <td><form:hidden path="llave.serie" /><form:hidden path="llave.numero" /></td>
         <td><form:hidden path="usuarioCreo" /><form:hidden path="estatus" /></td>
         <td><form:hidden path="solicitante.clave" /><form:hidden path="fechaInicio" /></td>
         <td><form:hidden path="empleado.codigo" /><form:hidden path="zona.clave" />
            <form:hidden path="planta.clave" /><form:hidden path="tiempoRespuesta" />
         </td>
      </tr>
      <tr><th>N&uacute;mero:</th><td><c:out value='${ordenTrabajo.llave.numero}' /></td>
         <th>Ultima Fecha:</th>
         <td>
            <fmt:formatDate pattern="dd/MM/yyyy HH:mm:ss" value="${ordenTrabajo.historicos[0].fecha}" />
            -> <c:out value='${ordenTrabajo.historicos[0].usuario}' />
         </td>
      </tr>
      <tr><th>Solicitante:</th>
         <td><c:out value="${ordenTrabajo.solicitante.nombre}"/></td>
         <th>Estatus:</th>
         <td><c:choose>
               <c:when test="${ordenTrabajo.estatus=='A'}">Abierta</c:when>
               <c:when test="${ordenTrabajo.estatus=='C'}">Complementada</c:when>
               <c:when test="${ordenTrabajo.estatus=='P'}">En Pedido</c:when>
               <c:when test="${ordenTrabajo.estatus=='F'}">Finalizada</c:when>
               <c:when test="${ordenTrabajo.estatus=='X'}">Cancelada</c:when>
               <c:otherwise>Otra...</c:otherwise>
            </c:choose>
         </td>
      </tr>
      <tr><th>Responsable:</th>
         <td><c:out value="${ordenTrabajo.empleado.nombre} ${ordenTrabajo.empleado.apellidoPaterno}"/></td>
         <th>Zona:</th><td><c:out value="${ordenTrabajo.zona.descripcion}"/></td>
      </tr>
      <tr><th>Fecha Inicio:</th>
         <td><fmt:formatDate pattern="dd/MM/yyyy" value="${ordenTrabajo.fechaInicio}" /></td>
         <th>Secci&oacute;n:</th><td><div id="seccion_responsable"></div></td>
      </tr>
      <tr><th>Fecha Fin:</th><td><form:input path="fechaFin" size="10" /></td>
         <th>Tiempo de Respuesta:</th><td><c:out value="${ordenTrabajo.tiempoRespuesta}"/></td>
      </tr>
      <tr><th>Planta:</th><td colspan="3"><c:out value="${ordenTrabajo.planta.valorMuestra}"/></td>
      </tr>
   </table><br>
   Planta/Equipo de mantenimiento
   <table id="tbl_ot_equipos" class="tbl_listado">
      <thead><tr><th>Tipo de Equipo</th><th>N&deg; Eco/Nombre</th><th>Clase</th>
            <th>Tipo de Trabajo</th><th>Proveedor</th></tr></thead>
      <tbody>
         <c:forEach var="mtto" items="${ordenTrabajo.mantenimientos}" varStatus="i">
            <tr>
               <td>
                  <form:hidden path="mantenimientos[${i.index}].llave.serieOT" />
                  <form:hidden path="mantenimientos[${i.index}].llave.numeroOT" />
                  <form:hidden path="mantenimientos[${i.index}].llave.numeroMtto" />
                  <form:hidden path="mantenimientos[${i.index}].usuarioCreo" />
                  <form:hidden path="mantenimientos[${i.index}].tipoTrabajo.clase.clave" />
                  <form:hidden path="mantenimientos[${i.index}].tipoTrabajo.clave" />
                  <form:hidden path="mantenimientos[${i.index}].proveedor.numero" />
                  <c:choose>
                     <c:when test="${not empty mtto.planta}">PLANTA DE CONCRETOS
                        <form:hidden path="mantenimientos[${i.index}].planta.clave" />
                     </c:when>
                     <c:when test="${not empty mtto.equipo}">
                        ${fn:substring(mtto.equipo.tipoEquipo.descripcion, 0, 25)}
                        <form:hidden path="mantenimientos[${i.index}].equipo.clave" />
                     </c:when>
                     <c:otherwise>No especificado</c:otherwise>
                  </c:choose>
               </td>
               <td>
                  <c:choose>
                     <c:when test="${not empty mtto.planta}">${mtto.planta.valorMuestra}</c:when>
                     <c:when test="${not empty mtto.equipo}">${mtto.equipo.valorMuestra}</c:when>
                     <c:otherwise>No especificado</c:otherwise>
                  </c:choose>
               </td>
               <td><c:out value="${mtto.tipoTrabajo.clase.descripcion}" /></td>
               <td><c:out value="${mtto.tipoTrabajo.descripcion}" /></td>
               <td><c:out value="${mtto.proveedor.valorMuestra}" /></td>
            </tr>
         </c:forEach>
      </tbody>
   </table><hr>
   <table id="tbl_ot_paro" class="tbl_formulario">
      <tr><th>Gener&oacute; paro:</th>
         <td><form:radiobutton path="generoParo" value="S" label="Si" />
            <form:radiobutton path="generoParo" value="N" label="No" />
         </td>
         <th>Tiempo de paro:</th>
         <td><form:input path="tiempoParo" size="6" cssClass="formato_numero" />min.</td>
         <th>Causa Paro:</th>
         <td>
            <form:select path="causaParo.clave">
               <form:option value="${null}" label="Selecionar" /> 
               <form:options items="${causasP}" itemValue="clave" itemLabel="descripcionCorta" />
            </form:select>
         </td>
      </tr>
      <tr><th>Descripci&oacute;n:</th><td colspan="5"><form:textarea path="descripcion" cols="60" rows="3" /></td></tr>
   </table><hr> 
   <button type="submit" class="btn_agregar" title="Agregar" name="agregaD" value="agrega">Agregar</button>
   DEFECTO / CAUSA / ACCI&Oacute;N:
   <table id="tbl_ot_defectos" class="tbl_listado" >
      <thead><tr><th>Defecto</th><th>Causa Defecto</th><th>Acci&oacute;n</th><th>Comentarios</th>
            <th>Opc.</th></tr></thead>
      <tbody>
         <c:forEach var="defecto" items="${ordenTrabajo.defectos}" varStatus="i">
            <tr>
               <td><form:hidden path="defectos[${i.index}].llave.serieOT" />
                  <form:hidden path="defectos[${i.index}].llave.numeroOT" />
                  <form:hidden path="defectos[${i.index}].llave.numeroDefecto" />
                  <form:hidden path="defectos[${i.index}].usuarioCreo" />
                  <form:select path="defectos[${i.index}].defecto.clave">
                     <form:option value="${null}" label="Selecionar" />
                     <form:options items="${defectos}" itemValue="clave" itemLabel="descripcionCorta"/>
                  </form:select>
               </td>
               <td>
                  <form:select path="defectos[${i.index}].causa.clave">
                     <form:option value="${null}" label="Selecionar" /> 
                     <form:options items="${causasD}" itemValue="clave" itemLabel="descripcionCorta"/>
                  </form:select>
               </td>
               <td><form:select path="defectos[${i.index}].accion.clave">
                     <form:option value="${null}" label="Selecionar" /> 
                     <form:options items="${acciones}" itemValue="clave" itemLabel="descripcionCorta"/>
                  </form:select></td>
               <td><form:textarea path="defectos[${i.index}].comentarios" cols="40" /></td>
               <td><button type="submit" class="btn_eliminar" title="Eliminar"
                           name="borraD" value="${i.index}">-</button></td>
            </tr>
         </c:forEach>
      </tbody>
   </table><hr><br/>REPORTE DE TRABAJOS REALIZADOS.<br/> Porcentaje IVA: 
   <form:input path="trabajosRealizados[0].porcentajeIva" size="3" id="porcentaje_iva" cssClass="txt_decimal"/>% <br/>
   <button type="submit" class="btn_agregar" title="Agregar" name="agregaM" value="agrega">Agregar</button>
   Agregar Mano de Obra Empleada:
   <table id="tbl_ot_realizados" class="tbl_listado">
      <thead><tr><th>Descripci&oacute;n de <br/>Mano de Obra Empleada</th><th>TOTAL HORAS</th>
            <th>PRECIO</th><th>IVA</th><th>IMPORTE</th><th>OPC.</th></tr></thead>
      <tbody><c:set var="contadorFilas" value="${0}" />
         <c:set var="sumaSubtotalM" value="${0}" />
         <c:set var="sumaIvaM" value="${0}" />
         <c:forEach var="trabajoRealizado" items="${ordenTrabajo.trabajosRealizados}" varStatus="j">
            <c:if test="${trabajoRealizado.tipo=='M'}">
               <tr>
                  <td>
                     <form:hidden path="trabajosRealizados[${j.index}].llave.serieOT" />
                     <form:hidden path="trabajosRealizados[${j.index}].llave.numeroOT" />
                     <form:hidden path="trabajosRealizados[${j.index}].llave.numeroTrabajoRealizado" />
                     <form:hidden path="trabajosRealizados[${j.index}].tipo" />
                     <form:hidden path="trabajosRealizados[${j.index}].usuarioCreo" />
                     <form:textarea path="trabajosRealizados[${j.index}].descripcion" />
                     <c:set var="sumaSubtotalM" value="${sumaSubtotalM+trabajoRealizado.precio}" />
                     <c:set var="sumaIvaM" value="${sumaIvaM+trabajoRealizado.montoIva}" />
                  </td>
                  <td><form:input path="trabajosRealizados[${j.index}].cantidadHoras" size="10" cssClass="formato_numero" /></td>
                  <td><form:input path="trabajosRealizados[${j.index}].precio" size="12" cssClass="formato_numero txt_decimal subtotal_m" id="subtotal_m${contadorFilas}" /></td>
                  <td><form:input path="trabajosRealizados[${j.index}].montoIva" size="12" cssClass="formato_numero txt_decimal montoIva_m" id="montoIva_m${contadorFilas}" /></td>
                  <td>
                     <span class="txt_total_filam total_fila_m${contadorFilas}"><c:out value="${trabajoRealizado.montoIva + trabajoRealizado.precio}" /></span>
                  </td>
                  <td><button type="submit" class="btn_eliminar" title="Eliminar"
                              name="borraM" value="${j.index}">-</button>
                     <c:set var="contadorFilas" value="${contadorFilas+1}" /></td>
               </tr>
            </c:if>
         </c:forEach>
               <tr><td colspan="4" class="formato_numero">COSTO DE MANO DE OBRA:</td><td><span id="txt_suma_subtotalm"><c:out value="${sumaSubtotalM}" /></span></td><td></td></tr>
         <tr><td colspan="4" class="formato_numero">IVA:</td><td><span id="txt_suma_ivam"><c:out value="${sumaIvaM}" /></span></td><td></td></tr>
         <tr><td colspan="4" class="formato_numero">DESCUENTO:</td>
            <td><form:input path="trabajosRealizados[0].descuento" size="12" cssClass="txt_decimal"/></td><td></td>
         </tr>
         <tr><td colspan="4" class="formato_numero">TOTAL:</td><td><span id="txt_suma_totalm"><c:out value="${sumaIvaM+sumaSubtotalM}" /></span></td><td></td></tr>
         <tr>
            <td colspan="6">
               <br/><button type="submit" class="btn_agregar" title="Agregar" name="agregaR" value="agrega">Agregar</button>
               Agregar Material o Refacci&oacute;n
            </td>
         </tr>
         <tr>
            <th>Descripci&oacute;n Materiales <br/>y Refacciones Utilizados:</th>
            <th>CANTIDAD</th><th>PRECIO</th><th>IVA</th><th>IMPORTE</th><th>Opc.</th>
         </tr>
         <c:set var="sumaSubtotalR" value="${0}" /><c:set var="sumaIvaR" value="${0}" />
         <c:forEach var="trabajoRealizado" items="${ordenTrabajo.trabajosRealizados}" varStatus="k">
            <c:if test="${trabajoRealizado.tipo=='R'}">
               <tr>
                  <td><form:hidden path="trabajosRealizados[${k.index}].llave.serieOT" />
                     <form:hidden path="trabajosRealizados[${k.index}].llave.numeroOT" />
                     <form:hidden path="trabajosRealizados[${k.index}].llave.numeroTrabajoRealizado" />
                     <form:hidden path="trabajosRealizados[${k.index}].tipo" />
                     <form:hidden path="trabajosRealizados[${k.index}].usuarioCreo" />
                     <form:textarea path="trabajosRealizados[${k.index}].descripcion" />
                     <c:set var="sumaSubtotalR" value="${sumaSubtotalR+trabajoRealizado.precio}" />
                     <c:set var="sumaIvaR" value="${sumaIvaR+trabajoRealizado.montoIva}" />
                  </td>
                  <td><form:input path="trabajosRealizados[${k.index}].cantidadHoras" size="10" cssClass="formato_numero txt_decimal" /></td>
                  <td><form:input path="trabajosRealizados[${k.index}].precio" size="12" cssClass="formato_numero txt_decimal subtotal_r" id="subtotal_r${contadorFilas}" /></td>
                  <td><form:input path="trabajosRealizados[${k.index}].montoIva" size="12" cssClass="formato_numero txt_decimal montoIva_r" id="montoIva_r${contadorFilas}" /></td>
                  <td><span class="txt_total_filar total_fila_r${contadorFilas}"><c:out value="${trabajoRealizado.montoIva + trabajoRealizado.precio}" /></span></td>
                  <td><button type="submit" class="btn_eliminar" title="Eliminar" 
                              name="borraR" value="${k.index}">-</button>
                     <c:set var="contadorFilas" value="${contadorFilas+1}" /></td>
               </tr>
            </c:if>
         </c:forEach>
         <tr><td colspan="4" class="formato_numero">Costo De Materiales y Refacciones:</td>
            <td><span id="txt_suma_subtotalr"><c:out value="${sumaSubtotalR}" /></span></td><td></td>
         </tr>
         <tr><td colspan="4" class="formato_numero">IVA:</td><td><span id="txt_suma_ivar"><c:out value="${sumaIvaR}" /></span></td><td></td></tr>
         <tr><td colspan="4" class="formato_numero">DESCUENTO:</td>
            <td><form:input path="trabajosRealizados[0].descuento" size="12" cssClass="txt_decimal" /></td><td></td>
         </tr>
         <tr><td colspan="4" class="formato_numero">TOTAL:</td><td><span id="txt_suma_totalr"><c:out value="${sumaIvaR+sumaSubtotalR}"/></span></td><td></td></tr>
      </tbody>
   </table><hr>Archivo anexo: <input type="file" name="ot_anexo" /><br/><hr>
   <button type="reset" class="btn_regresar" title="Regresar">Regresar</button>
   <button type="submit" class="btn_guardar" title="Guardar">Guardar</button>
</form:form><c:url var="regrUrl" value="/ordenes" />
<script type="text/javascript">
   $(document).ready(function() {
      $(".btn_regresar").click(function() {
         window.location.replace('${regrUrl}');
      });
      $("#fechaFin").datepicker({ //minDate: "today",
         maxDate: "+3M",
         changeMonth: true,
         numberOfMonths: 2,
         dateFormat: "dd/mm/yy"
      });
      
      $(".subtotal_m").keyup(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         var sub = parseFloat($(this).val());
         var porcentajeIva = parseFloat($("#porcentaje_iva").val()) / 100;
         var iva = sub * porcentajeIva;
         iva = Math.round(iva * 100) / 100;
         $("#montoIva_m" + fila).val(iva);
         var totalFila = iva + sub;
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_m" + fila).text(totalFila);
         //sumarTotales();
      }).blur(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         var sub = parseFloat($(this).val());
         var porcentajeIva = parseFloat($("#porcentaje_iva").val()) / 100;
         var iva = sub * porcentajeIva;
         iva = Math.round(iva * 100) / 100;
         $("#montoIva_m" + fila).val(iva);
         var totalFila = iva + sub;
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_m" + fila).text(totalFila);
         sumarTotales();
      });
      $(".montoIva_m").keyup(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         var totalFila = parseFloat($(this).val());
         totalFila += parseFloat($("#subtotal_m" + fila).val());
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_m" + fila).text(totalFila);
         //sumarTotales();
      }).blur(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         var totalFila = parseFloat($(this).val());
         totalFila += parseFloat($("#subtotal_m" + fila).val());
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_m" + fila).text(totalFila);
         sumarTotales();
      });
      
      $(".subtotal_r").keyup(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 7;
         //alert(fila);
         var sub = parseFloat($(this).val());
         var porcentajeIva = parseFloat($("#porcentaje_iva").val()) / 100;
         var iva = sub * porcentajeIva;
         iva = Math.round(iva * 100) / 100;
         $("#montoIva_r" + fila).val(iva);
         var totalFila = iva + sub;
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_r" + fila).text(totalFila);
         //sumarTotales();
      }).blur(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 7;
         var sub = parseFloat($(this).val());
         var porcentajeIva = parseFloat($("#porcentaje_iva").val()) / 100;
         var iva = sub * porcentajeIva;
         iva = Math.round(iva * 100) / 100;
         $("#montoIva_r" + fila).val(iva);
         var totalFila = iva + sub;
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_r" + fila).text(totalFila);
         sumarTotalesr();
      });
      $(".montoIva_r").keyup(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 7;
         var totalFila = parseFloat($(this).val());
         totalFila += parseFloat($("#subtotal_r" + fila).val());
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_r" + fila).text(totalFila);
         //sumarTotales();
      }).blur(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 7;
         var totalFila = parseFloat($(this).val());
         totalFila += parseFloat($("#subtotal_r" + fila).val());
         totalFila = Math.round(totalFila * 100) / 100;
         $(".total_fila_r" + fila).text(totalFila);
         sumarTotalesr();
      });
      
      $("#porcentaje_iva").blur(function() {
         calcularIvas();
      });
   });
   function calcularIvas() {
      $('#tbl_ot_realizados > tbody > tr').each(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 1;
         $("#subtotal_m" + fila).focus();
         $("#subtotal_m" + fila).blur();
         $("#subtotal_r" + fila).focus();
         $("#subtotal_r" + fila).blur();
      });
   }
   /*function calcularIvas() {
      $('#tbl_ot_realizados > tbody > tr').each(function() {
         var fila = $(this).closest("tr")[0].rowIndex - 7;
         $("#subtotal_r" + fila).focus();
         $("#subtotal_r" + fila).blur();
      });
   }*/
   function sumarTotales() {
      var subtotales = 0;
      var ivas = 0;
      var totales = 0;
      $('#tbl_ot_realizados > tbody  > tr').each(function() {
         $(this).find('.txt_total_filam').each(function() {// key, val
            var valor = $(this).text();
            if (isNaN(valor) || valor.length <= 0) {
               valor = 0;
            }
            totales += parseFloat(valor);
         });
         $(this).find('.subtotal_m').each(function() {// key, val
            var valor2 = $(this).val();
            if (isNaN(valor2) || valor2.length <= 0) {
               valor2 = 0;
            }
            subtotales += parseFloat(valor2);
         });
         $(this).find('.montoIva_m').each(function() {// key, val
            var valor3 = $(this).val();
            if (isNaN(valor3) || valor3.length <= 0) {
               valor3 = 0;
            }
            ivas += parseFloat(valor3);
         });
      });
      totales = Math.round(totales * 100) / 100;
      subtotales = Math.round(subtotales * 100) / 100;
      ivas = Math.round(ivas * 100) / 100;
      $("#txt_suma_totalm").text(totales);
      $("#txt_suma_subtotalm").text(subtotales);
      $("#txt_suma_ivam").text(ivas);
   }
   function sumarTotalesr() {
      var subtotales = 0;
      var ivas = 0;
      var totales = 0;
      $('#tbl_ot_realizados > tbody  > tr').each(function() {
         $(this).find('.txt_total_filar').each(function() {// key, val
            var valor = $(this).text();
            if (isNaN(valor) || valor.length <= 0) {
               valor = 0;
            }
            totales += parseFloat(valor);
         });
         $(this).find('.subtotal_r').each(function() {// key, val
            var valor2 = $(this).val();
            if (isNaN(valor2) || valor2.length <= 0) {
               valor2 = 0;
            }
            subtotales += parseFloat(valor2);
         });
         $(this).find('.montoIva_r').each(function() {// key, val
            var valor3 = $(this).val();
            if (isNaN(valor3) || valor3.length <= 0) {
               valor3 = 0;
            }
            ivas += parseFloat(valor3);
         });
      });
      totales = Math.round(totales * 100) / 100;
      subtotales = Math.round(subtotales * 100) / 100;
      ivas = Math.round(ivas * 100) / 100;
      $("#txt_suma_totalr").text(totales);
      $("#txt_suma_subtotalr").text(subtotales);
      $("#txt_suma_ivar").text(ivas);
   }
</script>
<jsp:include page="../comunes/footer.jsp" />